In code division multiple access (CDMA) communication systems, communications are sent over a shared frequency spectrum. To minimize cross interference between the transmitted signals, orthogonal codes are used. Communications transmitted with orthogonal codes through an ideal wireless channel experience no cross code correlation, although in practice due to multipath, the orthogonal nature of the codes may break down to some extent.
FIG. 1 is an illustration of a code tree for orthogonal variable spreading factors (OSVF). At the top of the tree is a code for a spreading factor of one. Codes in each row further down the tree have a spreading factor twice the factor of the row above that code. For the code tree of the time division duplex (TDD) mode of a third generation partnership project (3GPP) wideband code division multiple access (WCDMA) communication system, the maximum spreading factor as shown in FIG. 1 is sixteen (16). In other systems, the maximum spreading factor may be significantly larger, such as 256 or 512.
FIG. 1 is an illustration of an OVSF code tree having a maximum spreading factor of 16. The tree has one code of spreading factor 1, C1(1) of a value “1”. Two codes, C2(2) having a value of “1,1” and C2(1) having a value of “1,−1”, have a spreading factor of 2. Four codes, C4(4) to C4(1), have a spreading factor of 4. Eight codes, C8(8) to C8(1) have a spreading factor of 8 and sixteen codes, C 16(16) to C16(1) have a spreading factor of 16.
The lines connecting the codes in the tree identity codes that are not orthogonal to each other in the tree. Codes connected by lines in either only an upward or downward direction are not orthogonal. To illustrate, code C16(16) is not orthogonal to code C2(2), since tracing a path from code C16(16) to code C2(2) can be done using four upward connecting lines. Conversely, codes C16(16) and C8(7) are orthogonal to each other. Tracing a path from C16(16) to C8(7) involves using two upward connecting lines and one downward connecting line.
To minimize interference between communications, it is desirable to only assign codes that are orthogonal to each other. It is also desirable to assign the codes in an optimal manner such that the maximum number of orthogonal codes are available for use. In an operating wireless communication system as codes are assigned and release, unoptimal code assignments may occur reducing the system's capacity.
FIG. 2A is an illustration of an unoptimal OVSF code assignment. One problem with using OVSF codes is the efficient use of the codes. After the assigning and release of codes, codes C16(16), C16(13), C16(9) and C16(5) are still active, as show as being filled circles. To prevent the assignment of a code not orthogonal to these codes, all the codes above these codes are blocked from assignment, as shown by an “X”. Accordingly, the use of C16(5) blocks C8(3), C4(2), C2(1) and C1(1). As shown in FIG. 2A, a total of ten codes are blocked, C1(1), C2(1), C2(2), C4(2), C4(3), C4(4), C8(3), C8(5), C8(7) and C8(8) are blocked. As a result of assigning four spreading factor (SF) sixteen codes, no SF 2 codes are available and only one SF4 code is available. Accordingly, services requiring an SF 2 code or multiple SF 4 codes can not be supported.
FIG. 2B illustrates and efficient assignment of four SF16 codes. Codes C16(16) to C16(13) are used. Only five codes are blocked as a result of this assignment, codes C1(1), C2(2), C4(4), C8(8) and C8(7). As a result, one SF 2 code is available and three SF 4 codes are available to support additional services. The assignment of FIG. 2B allows for greater latitude in code assignment than FIG. 2A.
Accordingly, it is desirable to have alternate approaches to code assignment.